<template>
  <div class="swiper-container" ref="cur">
    <div class="swiper-wrapper">
      <div class="swiper-slide" v-for="(carousel) in list" :key="carousel.id">
        <img :src="carousel.imgUrl" />
      </div>
    </div>

    <div class="swiper-pagination"></div>
    <div class="swiper-button-prev"></div>
    <div class="swiper-button-next"></div>
  </div>
</template>
<script>
import Swiper from "swiper";
export default {
  name: "MyCarousel",
  props: ["list"],
  watch: {
    list: {
      immediate: true,
      //   插件包使用准则:一定是它所需要的操作的dom结构渲染完成,插件包才可介入管理
      // 这里dom结构不涉及渲染异步回来的数据 所以不存在插件配置代码 操作不到最新最完整的dom  所以放在mounted中即可 无需$nextTick
      handler() {
        this.$nextTick(() => {
          //使用插件需注意dom结构一定是最新最完整的 这样才能保证插件配置项代码成功操作dom
         new Swiper(this.$refs.cur, {
            loop: true, // 循环模式选项
            // 如果需要分页器
            pagination: {
              el: ".swiper-pagination",
              clickable: true,
            },
            // 如果需要前进后退按钮
            navigation: {
              nextEl: ".swiper-button-next",
              prevEl: ".swiper-button-prev",
            },
          });
        });
      },
    },
  },
};
</script>

<style>
</style>